4.11 DataFrame表格的重复判断、删除
1、表格的重复判断
去重,是指删除重复数据。在一组数据集合中,找出重复的数据并将其删除,只保留唯一的数据单元, 在数据预处理中,这是一种经常性操作。在excel中也有删除重复值的功能,在pandas中提供了重复项判断和重复项删除。
如果要判断表格的记录是否有重复项,或者对某一列,某几列判断是否有重复项,可以使用df.duplicated() 结构如下
df.duplicated(subset=None,keep=”first”)
subset :指定识别重复项的列标签
keep :确认要标记的重复项
first :除第1次出现外,将重复项标记为True。默认值
last :除最后1次出现外,将重复标记为True
False :将所有重复值标记为True
import pandas as pd
path = r "D:\Pyobject2023\object\测试\素材\测试素材.表格重复判断.xlsx"
df = pd.read_excel(path)
print (df)
t=df.duplicated()
t1=df.duplicated([ "日期","部门" ])
print (t)
print (t1)
返回:
日期 | 部门 | 销售员 | |
---|---|---|---|
0 | 2024-01-01 | 财务部 | 张三 |
1 | 2024-01-01 | 采购部 | 李四 |
2 | 2024-01-01 | 财务部 | 张三 |
3 | 2024-01-02 | 财务部 | 李四 |
4 | 2024-01-02 | 财务部 | 李四 |
5 | 2024-01-03 | 财务部 | 张三 |
0 | False |
---|---|
1 | False |
2 | True |
3 | False |
4 | True |
5 | False |
0 | False |
---|---|
1 | False |
2 | True |
3 | False |
4 | True |
5 | False |
dtype: bool
2、表格的重复删除
删除复复项,可以用df.drop_duplicated()函数
构建如下:
Df.drop_duplicates(subset=None,keep=”first”,inplace=False,ignore_Index=False)
Inplace :就地修改
Ignore_index :是否重新设置行索引,默认值为False
import pandas as pd
path = r "D:\Pyobject2023\object\测试\素材\测试素材.表格重复判断.xlsx"
df = pd.read_excel(path)
print (df)
t=df.drop_duplicates( "日期" )
t1=df[df.duplicated( "日期" )] #等同上一行
print (t)
print (t1)
返回:
日期 | 部门 | 销售员 | |
---|---|---|---|
0 | 2024-01-01 | 财务部 | 张三 |
1 | 2024-01-01 | 采购部 | 李四 |
2 | 2024-01-01 | 财务部 | 张三 |
3 | 2024-01-02 | 财务部 | 李四 |
4 | 2024-01-02 | 财务部 | 李四 |
5 | 2024-01-03 | 财务部 | 张三 |
日期 | 部门 | 销售员 | |
---|---|---|---|
0 | 2024-01-01 | 财务部 | 张三 |
3 | 2024-01-02 | 财务部 | 李四 |
5 | 2024-01-03 | 财务部 | 张三 |
日期 | 部门 | 销售员 | |
---|---|---|---|
1 | 2024-01-01 | 采购部 | 李四 |
2 | 2024-01-01 | 财务部 | 张三 |
4 | 2024-01-02 | 财务部 | 李四 |